package innerclass;

public class LocalInnerClass {
    public static void main(String[] args) {
        Out02 out02 = new Out02();
        out02.m1();
    }
}

class Out02 {//外部类
    private int n1 = 100;

    public void m2() {
        System.out.println("m2方法");
    }

    public void m1() {
        //局部内部类是定义在外部类的局部位置，通常在方法
        //不能添加访问修饰符，因为它的地位就是一个局部变量。局部变量是不能使用
        //修饰符的。但是可以使用final修饰，因为局部变量也可以使用final
        final class Inner02 {//局部内部类，(本质仍然是一个类)

            private int n1 = 200;
            //可以直接访问外部类的所有成员，包括私有的
            public void f1() {
                System.out.println("n1=" + n1);
                System.out.println("Out02.n1="+Out02.this.n1);
                m2();
            }

        }
        //6.外部类在方法中可以创建Inner02对象，然后调用方法即可
        Inner02 inner02 = new Inner02();
        inner02.f1();
    }
}